##############  这个是Makefile中的注释   这里先写,后面再搞懂

.PHONY : clean

objs := start.o main.o   #这里的:=表示赋值 也就是表示 objs包含着要生成ledc.bin所需的材料: start.o main.o   这里的顺序别搞错了 后面链接的时候start.o							#要在最前面.          因为start.o是最先执行的文件 

ledc.bin :$(objs)        #等同于  ledc.bin : start.o main.o     如果当前工程没有start.o 和 main.o 的时候就会找到相应的规则去执行
	arm-linux-gnueabihf-ld -Timx6ul.lds -o ledc.elf $^    #指定链接生成的文件为 ledc.elf  使用-Ttext来指定链接地址是0x87800000
	#上面相等于 arm-linux-gnueabihf-ld -Ttext 0X87800000 -o ledc.elf start.o main.o      $^表示所有依赖文件的集合,使用空格隔开,并且会去重(这里就是
	#objs这个变量的值,即start.o main.o)
	arm-linux-gnueabihf-objcopy -O binary -S ledc.elf $@  #将ledc.elf文件转换为ledc.bin  $@表示规则中的目标集合(只有一个目标)  这里就是ledc.bin
	#上面就像等于 arm-linux-gnueabihf-objcopy -O binary -S ledc.elf ledc.bin
	arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis    #将.elf文件反汇编 .dis文件里面是汇编代码

%.o:%.s
	arm-linux-gnueabihf-gcc -Wall -nostdlib -c -o $@ $<    #这里的$<表示 依赖文件集合  和$^是有区别的
	#上面就相当于 arm-linux-gnueabihf-gcc -Wall -nostdlib -c -o 

%.o:%.S
	arm-linux-gnueabihf-gcc -Wall -nostdlib -c -o $@ $<

%.o:%.c
	arm-linux-gnueabihf-gcc -Wall -nostdlib -c -o $@ $<

clean:
	rm -rf *.o ledc.bin ledc.elf ledc.dis



